-- Settings
DBHandler=nil
DBName="db_72348"
DBUser="db_72348"
DBPass="XQbb4Mhp8Nrg"
DBHost="137.74.6.118"

-- Functions
function dbSet(...)
	if not {...} then return end
	local stringe=dbPrepareString(DBHandler,...)
	local query=dbExec(DBHandler, stringe)
	return query
end

function dbGet(...)
	if not {...} then return end
	local stringe=dbPrepareString(DBHandler,...)
	local query=dbQuery(DBHandler, stringe)
	local result=dbPoll(query, -1)
	return result
end


addEventHandler("onResourceStart", resourceRoot, function()
	DBHandler=dbConnect("mysql", "dbname="..DBName..";host="..DBHost.."", DBUser, DBPass, "share=1;autoreconnect=1")
	if DBHandler then
		outputDebugString("* Connect to server MYSQL...")
		dbSet("SET NAMES utf8")
	else
		outputDebugString("* No Connecting to server MYSQL..")
	end
end)


local SQL_LOGIN="db_72348"
local SQL_PASSWD="XQbb4Mhp8Nrg"
local SQL_DB="db_72348"
local SQL_HOST="137.74.6.118"
local SQL_PORT=3306

local root = getRootElement()

local SQL

local function connect()
	SQL = mysql_connect(SQL_HOST, SQL_LOGIN, SQL_PASSWD, SQL_DB, SQL_PORT)
	if (not SQL) then
		outputServerLog("BRAK POLACZENIA Z BAZA DANYCH!")
	else
		--mysql_query(SQL,"SET NAMES utf8")
		--outputServerLog("Modul mysql polaczony!")
	end

end


local function keepAlive()
	if (not mysql_ping(SQL)) then
		outputServerLog("Zerwane polaczenie z baza danych, nawiazywanie...")
		connect()
	end
end
addEventHandler("onResourceStart",getResourceRootElement(),function()
	connect()
	setTimer(keepAlive, 30000, 0)
end)

function esc(value)
	return mysql_escape_string(SQL,value)
end

function pobierzTabeleWynikow(query)
	local result=mysql_query(SQL,query)
	if (not result) then
		outputDebugString("mysql_query failed: (" .. mysql_errno(SQL) .. ") " .. mysql_error(SQL))
		outputServerLog("mysql_query failed: (" .. mysql_errno(SQL) .. ") " .. mysql_error(SQL))
		return nil
	end
	local tabela={}
	for result,row in mysql_rows_assoc(result) do
		table.insert(tabela,row)
	end
	mysql_free_result(result)
	return tabela
end

function pobierzWyniki(query)
	local result=mysql_query(SQL,query)
	if (not result) then return nil end
	row = mysql_fetch_assoc(result)
	mysql_free_result(result)
	return row
end


function zapytanie(query)
	local result=mysql_query(SQL,query)
	if (result) then mysql_free_result(result) return true end
	return
end

function insertID()
	return mysql_insert_id(SQL)
end

function affectedRows()
	return mysql_affected_rows(SQL)
end


function fetchRows(query)
	local result=mysql_query(SQL,query)
	if (not result) then return nil end
	local tabela={}

	while true do
    	local row = mysql_fetch_row(result)
	    if (not row) then break end
	    table.insert(tabela,row)
	end
	mysql_free_result(result)
	return tabela
end


function getSQLLink()
	return SQL
end
